iT邦幫忙

2025 iThome 鐵人賽

DAY 5
0
Cloud Native

我在 CKS 考完只拿 47% 後痛定思痛決定好好準備內容系列 第 5

[Day5] 1-4. Protect node metadata and endpoints

  • 分享至 

  • xImage
  •  

今天主要會是針對 kubelet 的訪問,如何去限制取得 meta data 以及 endpoint 的設定

Kubelet

介紹

kubelet 是在每個節點上運行的主要「節點代理程式」。它可以使用以下其中一種方式向 API 伺服器註冊:

  • 主機名稱(hostname)
  • 覆寫主機名稱的參數
  • 特定於某雲端驅動程式的邏輯

kubelet 是基於 PodSpec 來工作的。每個 PodSpec 是一個描述 Pod 的 YAML 或 JSON 物件。kubelet 接受透過各種機制(主要是透過 apiserver)提供的一組 PodSpec,並確保這些 PodSpec 中描述的容器處於運行狀態且運行狀況良好。kubelet 不會管理非由 Kubernetes 建立的容器。

Kubeadm 並不會一起安裝kubelet

配置

  1. Config 檔

kubelet 可以分爲kubelet service 以及 kubelet-config 檔,透過在kubelet service 中用 --config 的方式指定檔案

  1. 配置後可以透過 ps -aux | grep kubelet 查看 相關配置訊息

訪問與權限

  1. 提供兩個 port 可以訪問

    • 10250 提供 Service API full access
      curl -sk https:/localhost:10250/pods
      curl -sk https://localhost:10250/logs/syslog
      
    • 10255 提供未驗證的 Service API read only 權限
      curl -sk http://localhost:10255/metrics
      
  2. 限制訪問

  • Authentication =>
    (1) 透過設定
    bash --anonymous-auth=false
    禁止訪問
    (2) 給定ca 當訪問時需要給 key 以及 cert
    bash curl -sk https://localhost:10250/pods/ --key kubelet-key.pem --cert kubelet-cert.pem
    (3) 針對 10255 port 可以將
    bash --read-only-port
    由 10255 port 改為 0

  • Authorization =>

    (1) 可設定
    bash --authorization-mode=Webhook
    當訪問時會去kube-apiserver 確認是否有權限


上一篇
[Day4] 1-3. Properly set up Ingress with TLS
系列文
我在 CKS 考完只拿 47% 後痛定思痛決定好好準備內容5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言